package com.justgame.project.service.just.mapper;

import com.justgame.project.service.api.dto.JustGameScoreDTO;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface JustGameScoreMapper {

    /**
     * 插入
     *
     * @param dto 传入的数据对象
     * @return 返回插入条数
     */
    int add(@Param("dto") JustGameScoreDTO dto);

    /**
     * 查询某一游戏的分数
     *
     * @param id 游戏id
     * @return 返回查询的分数
     */
    Float selectGameScore(@Param("id") String id);

    /**
     * 查询某用户是否对某一游戏的打过分
     *
     * @param dto 数据对象
     * @return true or false
     */
    Boolean hasScored(@Param("dto") JustGameScoreDTO dto);

    /**
     * 查询某一游戏所有评分
     *
     * @param id 游戏id
     * @return true or false
     */
    Map<String, Object> getScore(@Param("id") String id);

    /**
     * 获取不同评分的评价人数
     *
     * @param id 游戏id
     * @return
     */
    @MapKey("score")
    List<Map<Integer, Integer>> getScorePercent(@Param("id") String id);
}
